// src/meta.ts
import request from "@/utils/request";
//用于新建指标域的接口
// 菜单基础URL
const DATASOURCE_BASE_URL = "/ig/datasource";

const NewDataSourceAPI = {
  add(data: dataSourceForm) {
    return request<any, ResponseData>({
      url: `${DATASOURCE_BASE_URL}/insert`,
      method: "post",
      data: data,
    });
  },
  insertTest(data: dataSourceForm) {
    return request<any, any>({
      url: `${DATASOURCE_BASE_URL}/insert/test`,
      method: "post",
      data: data,
    });
  },
  getOptions(id: number) {
    console.log("Fetching options from:", `${DATASOURCE_BASE_URL}/options`);
    console.log(id);
    return request<any, OptionType[]>({
      url: `${DATASOURCE_BASE_URL}/options/${id}`,
      method: "get",
      params: { id: id },
    });
  },
  delete(queryParams?: DeleteParameter) {
    return request({
      url: `${DATASOURCE_BASE_URL}/delete`,
      method: "get",
      params: queryParams,
    });
  },
  test(queryParams?: DeleteParameter) {
    return request<any, any>({
      url: `${DATASOURCE_BASE_URL}/test`,
      method: "get",
      params: queryParams,
    });
  },
};

export default NewDataSourceAPI;
/**
 * DataSourceInsertDTO
 */
export interface dataSourceForm {
  // 创建人
  createUser?: string;
  // 创建人id
  createUserId?: number;
  // 数据源类型
  dataSourceType?: number;
  // 数据源名称
  aliasName?: string;
  // 数据库名称
  dataSourceName?: string;
  // 数据源描述
  dataSourceDescription?: string;
  // 数据源地址
  dataSourceAddress?: string;
  // 数据源端口
  dataSourcePort?: number;
  //数据库名称
  databaseName?: string;
  // 数据源用户名
  dataSourceUserName?: string;
  // 数据源密码
  dataSourcePassword?: string;
}

/**
 * 统一结果返回类封装
 *
 * HttpResult
 */
export interface dataSourceOptionType {
  // 数据源地址
  dataSourceAddress?: OptionType[];
  // 数据源名称
  dataSourceName?: OptionType[];
  // 数据源端口
  dataSourcePort?: OptionType[];
  // 数据源类型
  dataSourceType?: OptionType[];
}

export interface DeleteParameter {
  id?: number;
}
